package org.wu.framework.authorization.platform.domain.model.sys.dictionary.data;

import org.wu.framework.authorization.platform.infrastructure.entity.SysDictionaryDataDO;
import org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyDomainRepository;
import org.wu.framework.web.response.Result;
import org.wu.framework.web.spring.response.repository.LazyCrudRepository;

import java.util.List;

/**
 * describe
 *
 * @author Jia wei Wu
 * @date 2023/05/17 11:19 晚上
 * @see DefaultDDDLazyDomainRepository
 **/

public interface SysDictionaryDataRepository extends LazyCrudRepository<SysDictionaryDataDO, SysDictionaryData, Integer> {


    /**
     * describe 新增
     *
     * @param
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/05/17 11:19 晚上
     **/

    Result<SysDictionaryData> story(SysDictionaryData sysDictionaryData);

    /**
     * describe 查询单个
     *
     * @param
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/05/17 11:19 晚上
     **/

    Result<SysDictionaryData> findOne(SysDictionaryData sysDictionaryData);

    /**
     * describe 查询多个
     *
     * @param
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/05/17 11:19 晚上
     **/

    Result<List<SysDictionaryData>> findList(SysDictionaryData sysDictionaryData);

    /**
     * describe 根据字典编码获取字典数据
     *
     * @param dictionaryCodeList 字典编码
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/05/17 11:19 晚上
     **/

    Result<List<SysDictionaryData>> findListByDictionaryCode(List<String> dictionaryCodeList);

    /**
     * describe 删除
     *
     * @param
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/05/17 11:19 晚上
     **/

    Result<SysDictionaryData> delete(SysDictionaryData sysDictionaryData);

}